<?php
/**
 * Created by PhpStorm.
 * User: 老王
 * Date: 2017/6/11
 * Time: 16:17
 */
namespace app\admin\controller;
use com\wechat\TPWechat;
use think\Config;
use  app\admin\model\Uploads as UploadsModel;
/*
 * 图片  上传微信服务器   类
 */
class Uploads extends Admin{
    /*
     * 图片  上传微信服务器  并获取连接
     */
    public function index(){
        $list = $this->lists('Uploads',array());
        $this->assign('list',$list);
        return $this->fetch();
    }
    /*
     * 图片   添加  上传至微信服务器
     */
    public function add(){
        $file = request() ->file('image');
        $file_types = explode ( ".", $file->getInfo()['name'] );
        $file_type = array_pop($file_types);
        if ($file->getInfo()['error'] != 0){
            return $this->error('图片上传错误');
        }
        if ($file->getInfo()['size'] >= 1*1024*1024){
            return $this->error('图片上传必须小于1M');
        }
        if (!in_array(strtolower($file_type),['jpg','png'])){
            return $this->error('图片类型不允许');
        }
        //判断是否是通过HTTP POST上传的
        if(!is_uploaded_file($file->getInfo()['tmp_name'])){
            //如果不是通过HTTP POST上传的
            return $this->error('图片非法上传');
        }
        $info = $file ->move(ROOT_PATH . 'public' . DS . 'uploads');  //上传之后移动地址
        if ($info) {
            $path = $info->getPathName();  //上传文件的地址
            $Wechat = new TPWechat(Config::get('party'));
            $path = '@'.$path;
            $Pic = $Wechat->uploadImg(['media' => $path]);
            $Uploads = new UploadsModel();
            $res = $Uploads->save(['media_url' => $Pic['url'],'create_user' => $_SESSION['think']['user_auth']['id']]);
            if ($res){
                unlink($path);//完成后删除该文件
                return $this->success('上传成功');
            }else{
                return $this->error('上传失败');
            }
        }else{
            return $file ->getError();
        }
    }
}